\documentclass[a4paper,pascal,pdf,colorBG,slideColor,accumulate]{prosper}
\hypersetup{pdfpagemode=FullScreen}

% Revisions:
%   use tentmaker right from the start
%   include screen shots of tentmaker (static not movies)
%   include screen shots of running apps
%   remove the discussion of data statements (unless you want to add them
%   in tentmaker)

% Story board:
%   title
%   history
%   what do we make?
%   sample app car talk
%   sample app data model
%   starting with two tables in tentmaker
%   initial generation
%   running app screen shots or movie
%   augmenting with tentmaker (screen shots)
%   regenerating
%   running corrected app
%   adding a report (show finished screen shots)
%   tentmaker take three (add Report header option)
%   regenerate restart (screen shot of failure on clicking Report)
%   Adding the code
%   Code tour?
%   move to mod_perl
%   move to Gantry::Conf
%   Final slide?

\usepackage{graphicx}

\title{Building Web Apps}
\subtitle{with Gantry and Bigtop}
\author{Phil Crow}
\email{crow.phil@gmail.com}
\institution{Sunflower Broadband\\Lawrence, KS}
\slideCaption{Gantry and Bigtop}
%\Logo(-.5,0){\includegraphics[height=.25in]{sunflowerlogo.eps}}

\begin{document}
\maketitle

%\overlays{8}{
%\begin{slide}{How did it start?}
%    \onlySlide*{1}{ \includegraphics[width=4in]{sunflower1996.eps} }
%    \onlySlide*{2}{ \includegraphics[width=4.5in]{ljworld.eps} }
%    \onlySlide*{3}{ \includegraphics[width=4.5in]{djangohome.eps} }
%    \onlySlide*{4}{ \includegraphics[width=5.5in]{sunflowernow.eps} }
%    \onlySlide*{5}{ \includegraphics{services.cable.eps} }
%    \onlySlide*{6}{ \includegraphics{services.internet.eps} }
%    \onlySlide*{7}{ \includegraphics{services.phone.eps} }
%    \onlySlide*{8}{ \includegraphics[width=3.5in]{usegantry.eps} }
%\end{slide}
%}

%    \onlySlide*{2}{ \includegraphics[width=4.5in]{headend.eps} }
%    \onlySlide*{1}{ newscenter.eps }
%    \onlySlide*{2}{ headend.eps }
\overlays{4}{
\begin{slide}{Who in The World are we?}
    \onlySlide*{1}{ \includegraphics[width=4in]{news_center.eps} }
    \onlySlide*{2}{ \includegraphics[width=4.5in]{djangohome.eps} }
    \onlySlide*{3}{ \includegraphics[width=4.5in]{ljworld.eps} }
    \onlySlide*{4}{ \includegraphics[width=3.5in]{usegantry.eps} }
\end{slide}
}

\overlays{5}{
    \begin{slide}{What do we build?}
        Apps to support our business
        \begin{itemstep}
        \FromSlide{2}  \item press run efficiency - Gutenberg
        \FromSlide{3}  \item what's in the paper and on TV - News Budget
        \FromSlide{4}  \item telephone provisioning - PhoneProv
        \FromSlide{5}  \item on site tech scheduler - Hoffa
        \end{itemstep}
    \end{slide}
}

\overlays{4}{
    \begin{slide}{Sample App Background}
    Carpool conversation \\
    \FromSlide{2}
    Rob: How do you pick stocks? \\
    \FromSlide{3}
    Phil: Three things: \\
    \begin{itemstep}
        \item Good products
        \item Good place to work
        \item Good current price
    \end{itemstep}
    \FromSlide{4}
    Rob: So, you're a fundamentalist \\
    \end{slide}
}

\overlays{7}{
  \begin{slide}{Hello, Rob!}
     \onlySlide*{1}{ \includegraphics[width=4in]{hirob_pm.eps} }
     \onlySlide*{2}{ \includegraphics[width=4in]{hirob_httpdconf.eps} }
     \onlySlide*{3}{ \includegraphics[width=4in]{hirob_httpdconf1.tt.eps} }
     \onlySlide*{4}{ \includegraphics[width=4in]{hirob_httpdconf1.setvar.eps} }
     \onlySlide*{5}{ \includegraphics[width=4in]{hirob_pm.1.eps} }
     \fromSlide*{6}{ \includegraphics[width=4in]{hirob_template.eps} }
     \onlySlide*{7}{ \includegraphics[width=5in]{hirob_firefox.eps} }
  \end{slide}
}

\overlays{3}{
\begin{slide}{Sample App: Track Stops}
Data Model - Key to Most Apps
\begin{itemstep}
              \item stock - symbol, name
\FromSlide{2} \item lot   - stock, bought, cost, shares
\FromSlide{3} \item stop  - stock, price per share, executed
\end{itemstep}
\end{slide}
}

\overlays{5}{
    \begin{slide}{Starting Small}
        \begin{itemstep} \item
            bigtop -n StockTrack 'stock$<$-lot stop->stock \\
            stock(symbol,name) \\
            lot(bought:date,cost:int4,shares:int4)
            stop(price:int4,+executed:date)'
            \FromSlide{2} \item cd StockTrack
            \FromSlide{3} \item sqlite3 app.db $<$ docs/schema.sqlite
            \FromSlide{4} \item ./app.server \\
            \FromSlide{5}
            Available urls: \\
              http://localhost:8080/ \\
              http://localhost:8080/lot \\
              http://localhost:8080/stop \\
              http://localhost:8080/stock \\
        \end{itemstep}
    \end{slide}
}

%        \onlySlide*{4}{ \includegraphics[width=4in]{lot_no_data.eps} }
%        \onlySlide*{5}{ \includegraphics[width=4in]{lot_add.eps} }
\overlays{6}{
    \begin{slide}{Running the Small App}
        \onlySlide*{1}{ \includegraphics[width=4in]{stock_no_data.eps} }
        \onlySlide*{2}{ \includegraphics[width=4in]{stock_add.eps} }
        \onlySlide*{3}{ \includegraphics[width=4in]{stock_one_row.eps} }
        \onlySlide*{4}{ \includegraphics[width=4in]{stop_no_data.eps} }
        \onlySlide*{5}{ \includegraphics[width=4in]{stop_add.eps} }
        \onlySlide*{6}{ \includegraphics[width=4in]{stop_one_row.eps} }
    \end{slide}
}

% These shots were made in ~/srcgantry/docs/talks/intro/studies/StockTrack
% on the Dell laptop with terminal profile screencast.
% They may need to be reshot to improve font heights.

\overlays{5}{
    \begin{slide}{Tour of Generated Files}
        \onlySlide*{1}{ \includegraphics[width=4.5in]{tour.eps} }
        \onlySlide*{2}{ \includegraphics[width=4.75in]{tour_docs.eps} }
        \onlySlide*{3}{ \includegraphics[width=4.85in]{tour_t.eps} }
        \onlySlide*{4}{ \includegraphics[width=4.85in]{tour_lib.eps} }
        % explain GEN/stub Cont/Model
        % emphasize that these are bigtop distinctions not Gantry distinctions
        \onlySlide*{5}{ \includegraphics[width=4.65in]{tour_lib_subdir.eps} }
    \end{slide}
}

% Use tentmaker to modify so stop and lot show stock on their main listings.

\overlays{9}{
    \begin{slide}{Getting Away from Defaults}
        \onlySlide*{1}{ \includegraphics[width=4in]{stop_one_row.eps} }
        \FromSlide{2} tentmaker docs/stocktrack.bigtop \\
        \onlySlide*{3}{ \includegraphics[width=4.75in]{tentopening.eps} }
        \onlySlide*{4}{ \includegraphics[width=4.75in]{controledit.eps} }
        \onlySlide*{5}{ \includegraphics[width=4.75in]{methodedit.eps} }
        \onlySlide*{6}{ \includegraphics[width=4.75in]{addingcol.eps} }
        \FromSlide{7} bigtop docs/stocktrack.bigtop all \\
        \FromSlide{8} ./app.server \\
        \FromSlide{9} \includegraphics[width=4.5in]{stop_w_stock.eps}
    \end{slide}
}

% Show a little bigtop?

\overlays{6}{
    \begin{slide}{Why Gantry?}
    Gantry Features:
    \begin{itemstep}
        \FromSlide{1} \item easy config with Gantry::Conf
        \FromSlide{2} \item simple dispatching
        \FromSlide{3} \item no magical code (except in your ORM)
        \FromSlide{4} \item ease of starting (Bigtop generation)
        \FromSlide{5} \item regeneration (Bigtop again)
        \FromSlide{6} \item plays well with others
    \end{itemstep}
    \end{slide}
}

\overlays{6}{
    \begin{slide}{Find out More}
    \begin{itemstep}
        \FromSlide{1} \item CPAN - get stable Gantry and Bigtop
        \FromSlide{2} \item usegantry.org - project home
        \FromSlide{3} \item timkeefer.com - blog by co-developer
        \FromSlide{4} \item The Gantry Book - lulu, see usegantry.org
        \FromSlide{5} \item Linux Mag - May print issue or on-line
        \FromSlide{6} \item onlamp article
    \end{itemstep}
    \end{slide}
}

% Missing slides:
%  Features
%    easy config with Gantry::Conf (Gantry not required)
%    dispatching so simple a drunken admin can follow it
%    no magical code (it's all on the disk)
%    regeneration
%    gets out of the way easily
%    plays well with others (especially our old framework)
%    Of course: MVC, mod_perl and CGI neutral
%  Code Tour
%  References -
%    usegantry.org (join mailing list, buy book, get source code)
%    timkeefer.com (blog of Tim Keefer with many Gantry posts)
%    linuxmag.com  (article)
%    my author listing on oreilly net (I hope there's an article soon)

%\begin{slide}{Code Tour}
%\end{slide}

%\overlays{n}{
%    \begin{slide}{title}
%    \begin{itemstep}
%                  \item
%    \FromSlide{2} \item
%    \FromSlide{3} \item
%    \end{itemstep}
%    \end{slide}
%}

\end{document}
